#pragma once

struct INotifyOnDeleteCallback;

struct CNotifyOnDelete
{
public: 
	CNotifyOnDelete();
	virtual ~CNotifyOnDelete();
	void FireOnDelete();
	HRESULT AddOnDeleteCallback(struct INotifyOnDeleteCallback * pNotifyCallback, void * token);
	HRESULT RemoveOnDeleteCallback(struct INotifyOnDeleteCallback * pNotifyCallback);
protected: 
	struct INotifyOnDeleteCallback * m_pNotifyCallback;
	void * m_token;
};